package utils;

import java.text.SimpleDateFormat;

import javax.swing.JFrame;
import javax.swing.JTextArea;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import Entity.WcsDvcEntity;
import log.WcsLog;
import window.WcsWindow;

/**
 * 打印日志的工具类
 * @author 风蚕
 *
 */
public class LogUnits {
	private static WcsWindow wcsWindow = GlobalOjbectUnits.getWindow();
	
//	private WcsDvcEntity wcsDvcEntity;
//	private Logger sourceLogger;
	
//	
//	public LogUnits(Logger sourceLogger, WcsDvcEntity wcsDvcEntity) {
//		this.sourceLogger = sourceLogger;
//		this.wcsDvcEntity = wcsDvcEntity;
//	}
//	
//	public LogUnits(Logger sourceLogger) {
//		this.sourceLogger = sourceLogger;
//	}
	
	/**
	 * ps:设置java可视化的状态栏信息
	 * @param msg
	 */
	public static void setStatus(String msg) {
		wcsWindow.getStatus().setText(msg);
	}
	
	
//	/**
//	 * 日志级别中info及以上的日志，分别在控制台、java视图、日志文件中输出
//	 */
//	public static void infoMoreLog(String msg) {
//		JTextArea textArea = wcsWindow.getTextArea();
//		boolean isSelected = wcsWindow.getChkLog().isSelected();
//        if (textArea.getLineCount() > 5000)
//        {
//            textArea.setText("");
//        }
//        SimpleDateFormat formatter = new SimpleDateFormat(
//                "yyyy-MM-dd HH:mm:ss:SSS");
//        String format = String.format("%s [%s] [dvc_no:%s] %s\n", 
//        		formatter.format(System.currentTimeMillis()),
//				Thread.currentThread().getName(),
//				7,
//				msg);
//        textArea.append(format);
////        textArea.append(formatter.format(System.currentTimeMillis()) + "    ["
////                + Thread.currentThread().getName() + "]" +"    ["+"008"+"]    " + msg
////                + "\r\n");
//		if (isSelected) {
//			logger.info(msg);
//		}
//	}
//	/**
//	 * 日志级别中error的日志，分别在控制台、java视图、日志文件中输出
//	 */
//	public static void errorLog(String msg) {
//		JTextArea textArea = wcsWindow.getTextArea();
//		boolean isSelected = wcsWindow.getChkLog().isSelected();
//		
//        if (textArea.getLineCount() > 5000)
//        {
//            textArea.setText("");
//        }
//        SimpleDateFormat formatter = new SimpleDateFormat(
//                "yyyy-MM-dd HH:mm:ss:SSS");
//        String format = String.format("%s [%s] [dvc_no:%s] %s\n", 
//        		formatter.format(System.currentTimeMillis()),
//				Thread.currentThread().getName(),
//				7,
//				msg);
//        textArea.append(format);
////        textArea.append(formatter.format(System.currentTimeMillis()) + "    :["
////                + Thread.currentThread().getName() + "]: " + msg
////                + "\r\n");
////        
//		if (isSelected) {
//			logger.error(msg);
//		}
//	}
	
	public static WcsLog getLogger(Class<?> sourceClass) {
		Logger logger = LoggerFactory.getLogger(sourceClass);
		
		return new WcsLog(logger);
	}
	
	public static WcsLog getLogger(Class<?> sourceClass,WcsDvcEntity wcsDvcEntity) {
		Logger logger = LoggerFactory.getLogger(sourceClass);
		return new WcsLog(logger, wcsDvcEntity);
	}
//	
//	/**
//	 * 面向单个plc连接的日志，会打印出带有dvcNo的日志。
//	 * 日志级别中info及以上的日志，分别在控制台、java视图、日志文件中输出
//	 */
//	public void infoMore(String msg) {
//		JTextArea textArea = wcsWindow.getTextArea();//用于向java可视化界面打印信息
//		String dvcNo;
//		if (wcsDvcEntity == null) {
//			dvcNo = "空";
//		}else {
//			dvcNo = wcsDvcEntity.getDvcNo();
//		}
//        if (textArea.getLineCount() > 5000){
//            textArea.setText("");
//        }
//        
//        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
//        textArea.append(formatter.format(System.currentTimeMillis()) + "    :["
//                + Thread.currentThread().getName() + "]: " +"    ["+dvcNo+"]    "+ msg
//                + "\r\n");
//		if (wcsWindow.getChkLog().isSelected()) {
//			logger.info(msg);
//		}
////		logger.info(msg);
//	}
}
